# delimit;
set more off;

*users should download July09public.sav file and convert to .dta format;
use July09public.dta, clear;

recode q25a (5/9=.)(1=4)(2=3)(3=2)(4=1), gen(opfed);
recode q25b (5/9=.)(1=4)(2=3)(3=2)(4=1), gen(opst);
recode q25c (5/9=.)(1=4)(2=3)(3=2)(4=1), gen(oploc);
	
	
label define opinions_rev

	4 "Very favorable"   
	3 "Mostly favorable"      
	2 "Mostly unfavorable"      
	1 "Very unfavorable"  ;
 
foreach var in fed st loc {;
	label values op`var' opinions_rev;
	};
	

recode q2 (1=1 "Approve")(2=0 "Disapprove")(9=.), gen(approve);
label var approve "President Job Approval";

recode sex (1=1)(2=0), gen(r_male);

recode age (99=.), gen(r_age);

recode educ (9=.), gen(r_educ);

replace hisp1=hisp3 if hisp1==.;
recode hisp1 (1=1)(2=0)(9=.), gen(r_hisp);

recode race1_1 (1=1)(2/4=0)(9=.), gen(r_white);
   replace r_white=0 if r_hisp==1;

recode race1_1 (2=1)(1=0)(3/4=0)(9=.), gen(r_black);
   replace r_black=0 if r_hisp==1;
   
recode race1_1 (3=1)(1 2=0)(4=0)(9=.), gen(r_asian);
   replace r_asian=0 if r_hisp==1;   

recode marital 	(1/2=1 "Married")
				(3 4=2 "Divorced")
				(5=3 "Widowed")
				(6=4 "Single")(9=.), gen(r_marital);
tab marital, gen(r_marital);

recode income (10=.), gen(r_income);

recode attend 	(6=1 "Never")
				(5=2 "Seldom")
				(4=3 "A few times a year")
				(3=4 "Once or twice a month")
				(2=5 "Once a week")
				(1=6 "More than once a week")
				(7/9=.), gen(r_attend);

recode born (1=1)(2=0)(.=0)(9=.), gen(r_bornagn);

recode regist
           (1=1 "Yes, registered")
           (2=0 "No, not registered")
           (9=. ), gen(r_regist);

recode party (1=1)(2/5=0)(9=.), gen(gop);
recode party (1=0)(2=1)(3/5=0)(9=.), gen(dem);
recode party (1/2=0)(3/5=1)(9=.), gen(ind);

recode party (1=1 "Republican")(2=5 "Democrat") (3/5=3 "Independent")(9=.), gen(partyid);
replace partyid=2 if partyid==3 & partyln==1;
replace partyid=3 if partyid==3 & partyln==9;
replace partyid=4 if partyid==3 & partyln==2;

recode ideo (9=.), gen(ideo_all);
tab ideo_all, gen(ideo);

recode employ (9=.);
tab employ, gen(employ);

gen year=2009;

rename state fips;

keep fips r_* op* approve gop dem ind partyid ideo* employ* year weight;

codebook fips r_* op* approve gop dem ind partyid ideo* employ*;
